package com.yeyks.vip.dal.domain;

import com.baomidou.mybatisplus.annotation.IdType;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;

import java.io.Serializable;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * <p>
 * 精选小vip售卡佣金总览表
 * </p>
 *
 * @author yun
 * @since 2020-01-06
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "MiniCardCommissionOverview对象", description = "精选小vip售卡佣金总览表")
public class MiniCardCommissionOverview implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "分佣账户id")
    @TableField("account_id")
    private Integer accountId;

    @ApiModelProperty(value = "总入账金额")
    @TableField("total_in_amount")
    private Integer totalInAmount;

    @ApiModelProperty(value = "总出账金额")
    @TableField("total_out_amount")
    private Integer totalOutAmount;

    @ApiModelProperty(value = "剩余金额")
    @TableField("remain_amount")
    private Integer remainAmount;

    @ApiModelProperty(value = "账户类型(等同于accountinfo表中账户类型)")
    @TableField("account_type")
    private Integer accountType;

    @ApiModelProperty(value = "创建日期")
    @TableField("create_time")
    private Date createTime;

    @ApiModelProperty(value = "更新日期")
    @TableField("update_time")
    private Date updateTime;

    public MiniCardCommissionOverview(Integer accountId, Integer totalInAmount, Integer totalOutAmount, Integer remainAmount, Integer accountType, Date createTime, Date updateTime) {
        this.accountId = accountId;
        this.totalInAmount = totalInAmount;
        this.totalOutAmount = totalOutAmount;
        this.remainAmount = remainAmount;
        this.accountType = accountType;
        this.createTime = createTime;
        this.updateTime = updateTime;
    }

    public static final String ID = "id";

    public static final String ACCOUNT_ID = "account_id";

    public static final String TOTAL_IN_AMOUNT = "total_in_amount";

    public static final String TOTAL_OUT_AMOUNT = "total_out_amount";

    public static final String REMAIN_AMOUNT = "remain_amount";

    public static final String ACCOUNT_TYPE = "account_type";

    public static final String CREATE_TIME = "create_time";

    public static final String UPDATE_TIME = "update_time";

}
